/**
 * 题目：
 * https://ac.nowcoder.com/acm/contest/12949/C
 */

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.PriorityQueue;
import java.util.Scanner;

public class main3 {
    public static void main(String[] args) throws IOException {
//        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
//        String in = reader.readLine();
//        int size = Integer.parseInt(in);
//        in = reader.readLine();
//        String[] strs = in.split(" ");
//        PriorityQueue<Integer>[] queues = new PriorityQueue[5];
//        for (int i = 0; i < 5; i++) {
//            queues[i] = new PriorityQueue<>((o1, o2) -> o2 - o1);
//        }
//        StringBuilder sb = new StringBuilder();
//        for (int i = 0; i < size; i++) {
//            switch (strs[i]) {
//                case "1":
//                    queues[0].offer(i + 1);
//                    break;
//                case "2":
//                    queues[1].offer(i + 1);
//                    break;
//                case "3":
//                    queues[2].offer(i + 1);
//                    break;
//                case "4":
//                    queues[3].offer(i + 1);
//                    break;
//                case "5":
//                    queues[4].offer(i + 1);
//                    break;
//            }
//            boolean flag = true;
//            for (int j = 0; j < 5; j++) {
//                if (queues[j].isEmpty()) {
//                    flag = false;
//                    break;
//                }
//            }
//            if (flag) {
//                for (int j = 0; j < 5; j++) {
//                    int temp = queues[j].poll();
//                    sb.append(temp).append(" ");
//                }
//                sb.append("\n");
//            } else {
//                sb.append(-1).append("\n");
//            }
//        }
//
//        System.out.print(sb);

        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] task = new int[n];
        for(int i=0;i<n;i++){
            task[i] = sc.nextInt();
        }
        StringBuilder sb = new StringBuilder();
        PriorityQueue<Integer>[] queue = new PriorityQueue[5];
        for(int i=0;i<5;i++){
            queue[i] = new PriorityQueue<>((o1, o2) -> o2-o1);
        }
        for(int i=0;i<n;i++){
            switch (task[i]){
                case 1:queue[0].offer(i+1);break;
                case 2:queue[1].offer(i+1);break;
                case 3:queue[2].offer(i+1);break;
                case 4:queue[3].offer(i+1);break;
                case 5:queue[4].offer(i+1);break;

            }
            boolean flag = true;
            for (int j=0;j<5;j++){
                if(queue[j].isEmpty()){
                    flag=false;
                    break;
                }
            }
            if(flag){
                for (int j=0;j<5;j++){
                    int temp = queue[j].poll();
                    sb.append(temp).append(" ");
                }
                sb.append("\n");

            }
            else sb.append(-1).append("\n");
        }
        System.out.println(sb);
    }
}
